/***********************************************************************************************************************
 * ############################################# Application AdewebLite #############################################
 * AdewebLite Android est une application permettant de consulter des emplois du temps fournis par l'université UHP
 * avec ou sans connexion internet (informations gardées en mémoire à chaque synchronisation). Et utilisant la web
 * API ADE pour collecter les données.
 * @author Andrianjafintrimo Victor, Zanette Sébastien
 * 
 * Basée sur l'application du même nom, utilisant le flux RSS (données à traiter), de :
 * @author Schnell Michaël, Zanette Sébastien
 * **********************************************************************************************************************
 */

package ade.prime.model;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Couple de valeur Numéro étudiant / numéro(s) de ressources associé(s)
 * @author Zanette Sébastien, @author Andrianjafintrimo Victor
 */
public class StudentNumber extends Resource {

	public static final Parcelable.Creator<StudentNumber> CREATOR = new Creator<StudentNumber>() {

		@Override
		public StudentNumber[] newArray(int size) {
			return new StudentNumber[size] ;
		}

		@Override
		public StudentNumber createFromParcel(Parcel source) {
			return new StudentNumber(source.readString(), source.readString()) ;
		}
	};

	private String studentNumber;
	private String resources;

	/**
	 * Initialise le couple  Numéro étudiant / numéro(s) de ressources donné.
	 * @param number Numéro étudiant
	 * @param resources Numéro(s) de ressources
	 */
	public StudentNumber(String number, String resources) {
		super("") ;
		this.studentNumber = number;
		this.resources = resources;
	}

	/**
	 * Initialise le couple avec les valeurs par défaut.
	 */
	public StudentNumber() {
		this("", "");
	}

	/**
	 * Retourne la chaine contenant la/les ressources.
	 * @return ressources
	 */
	public String getResources() {
		return this.resources;
	}

	/**
	 * Positionne la valeur du champ ressources.
	 * @param resources Ressources
	 */
	public void setResources(String resources) {
		this.resources = resources;
	}

	/**
	 * Retourne le numéro étudiant.
	 * @return numéro étudiant
	 */
	public String getStudentNumber() {
		return this.studentNumber;
	}

	/**
	 * Positionne la valeur du champ studentNumber.
	 * @param studentNumber 
	 */
	public void setStudentNumber(String studentNumber) {
		this.studentNumber = studentNumber;
	}

	/**
	 * Ajoute un numéro de ressource associé au numéro étudiant dans le champs ressources.
	 * @param id 
	 */
	public void addRessource(String id) {
		StringBuilder res = new StringBuilder(this.resources.toString());
		if(!this.resources.equals("")){
			res.append("|");
		}
		res.append(id);
		this.resources = res.toString();
	}
	
	/**
	 * {@inheritDoc}
	 * @see ade.prime.model.Resource#toString()
	 */
	@Override
	public String toString() {
		return String.format("sn: %s, ress: %s", this.studentNumber, this.resource) ;
	}

	@Override
	public void writeToParcel(Parcel dest, int flags) {
		dest.writeInt(1) ;
		dest.writeString(this.studentNumber) ;
		dest.writeString(this.resource) ;
	}

}
